前言
从今天开始学习docker,通过博客记录自己学习的过程。
- 什么是docker?
- 为什么使用docker?
- docker相关的基本概念
什么是docker?
docker是基于go语言实现的开源项目,其目标是实现轻量级的操作系统虚拟化解决方案。用于替代操作系统虚拟机技术,docker的基础是Linux容器(LXC)等技术。在LXC的基础上docker进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作docker的容器就像操作一个快速轻量级的虚拟机一样简单。
为什么使用docker?
与虚拟机相比的优势。
- 更快速的交付和部署
- 更高效的虚拟化
- 更轻松的迁移和扩展
- 更简单的管理
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | 一般为MB | 一般为GB |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
docker相关的基本概念
Docker 包括三个基本概念
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
理解了这三个概念,就理解了 Docker 的整个生命周期。
镜像(Image):
镜像就是一个只读的模板,包含程序运行的环境,启动镜像即启动了一个docker容器,Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
容器(Container):
容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,各个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。
仓库(Repository):
仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。 国内的公开仓库包括Docker Pool等,可以提供大陆用户更稳定快速的访问。当然,用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上pull下来就可以了。